The exemplary embodiment relates to an apparatus and method for converting device-dependent three-channel input colors to four-channel output colors and finds particular application in computing black channel output values while conforming to limits on colorant usage.
Most color printers use combinations of colorants, such as inks or toners, for rendering images. These generally include subtractive primary colors cyan (C), magenta (M), and yellow (Y), and often a neutral color, typically black (K) color. The C, M and Y colorants define the printer's chromatic limits. When printed together in the correct device-specific ratio, C, M and Y can produce a neutral composite gray. However, this method for producing gray has several significant drawbacks including high ink use, high sensitivity to normal print process variation, poor color stability, low maximum density, muddy appearance, and lack of sharpness. To alleviate these problems, K is typically used in place of neutral combinations of C, M and Y to produce gray. Black colorant is also used to darken and stabilize dark shades and reduce total colorant use while increasing total color gamut volume. Printers use a variety of color transforms to convert device-dependent input color (usually three-channel RGB or CMY) to output device specific color, typically four-channel CMYK.
Replacing neutral combinations of C, M and Y with equivalent K can negatively affect some output colors. For example, depending on the output device, light near neutral colors often show more grain or noise after CMY replacement with K. Accordingly, algorithms have been developed to provide a balance between good color rendering and efficient use of colorants. Black generation algorithms generally differ, depending on the customer application, the printing technology and implementation specifics, including where, in the imaging/rasterization pipeline, the black channel is created. For example, in the case of aqueous and phase change ink jet printers using stochastic halftones, black channel generation may occur after rasterization on the bi-level bitmap as a point process. If, after halftoning to C, M and Y, the C, M and Y are all set to on, they are turned off and K is turned on. Variations in this general principle include retention of some under-color and neighborhood dependent processing.
In electro-photographic printers, black is often generated in continuous tone (contone) data before rasterization. Processes known as “under color removal” (UCR) and “gray component replacement” (GCR) are often used for this. UCR/GCR methods commonly involve examining the individual pixels of an image using the least (lightest) of the three cyan-magenta-yellow colors, often called the gray component, to determine an amount of black to be added (Gray Component Replacement). One or more of the CMY colors are then adjusted to account for the addition of black ink (Under Color Removal).
For example, the following CMY to CMYK conversion may be used:
      [                                        K            out                                                            C            out                                                            M            out                                                            Y            out                                ]    =      [                                        klut            ⁡                          [                              (                                  min                  ⁡                                      (                                                                  C                        in                                            ,                                              M                        in                                            ,                                              Y                        in                                                              )                                                  )                            ]                                                                        clut            ⁡                          [                                                C                  in                                -                                  min                  ⁡                                      (                                                                  C                        in                                            ,                                              M                        in                                            ,                                              Y                        in                                                              )                                                              ]                                                                        mlut            ⁡                          [                                                M                  in                                -                                  min                  ⁡                                      (                                                                  C                        in                                            ,                                              M                        in                                            ,                                              Y                        in                                                              )                                                              ]                                                                        ylut            ⁡                          [                                                Y                  in                                -                                  min                  ⁡                                      (                                                                  C                        in                                            ,                                              M                        in                                            ,                                              Y                        in                                                              )                                                              ]                                            ]  
where klut[ ], clut[ ], mlut[ ]and ylut[ ] are scalar tone reproduction functions/curves (TRC) implemented as look-up tables with interpolation, independently applied to each of K, C, M and Y. These curves are analogous to UCR/GCR curves used in the printing industry. In this simple algorithm UCR/GCR TRC curves together define the output gray line and determine ink use in composite colors.
One problem with this and similar black generation algorithms is the loss of output colors constructed using high chroma mixtures of CMY plus K. Additionally, demands for higher performance, consistency and lower operating costs have put pressure on printer developers to increase print speed and reduce and regularize colorant use. Manufacturers have developed variations in their algorithms and placed operating limits on printer components to address these needs. These changes include:
1. Limits placed on colorant usage, both explicitly, through specification changes, and implicitly, as limits formerly applied to raw engine output are now applied to linearized output.
2. Automatic color density control in the digital domain, further reducing total colorant usage.
3. Enforced mode-to-mode color matching limiting all modes to a common maximum chroma.
4. Limited or no ability for printer manufacturers to add controls to print engines supplied by third parties, including colorant formulation, engine embedded image processing or rasterization (e.g., halftoning) to mitigate or leverage what are otherwise device or consumable limitations.
For example, for a four-color printer where each colorant can be up to a maximum coverage of 100%, colorant ink limits were commonly set at 300% or more (i.e., at least about 75% of the theoretical maximum), based on raw/unlinearized engine response not including dot gain. Recently, limits ranging from about 240% to 280% have been applied. However, black generation algorithms designed for an ink limit of 300% with high dot gain do not perform as well when limited to total area coverage of 220% or less, for example. Using algorithms like the ones above, the only way to compensate for reduced ink in mid tones unavoidably adds composite color to the gray line, decreasing color stability and limiting the color gamut available.
There is a need for a black generation method designed to retain as much of the color gamut as possible within tight ink-limits while allowing configurable control of gray line composition, color stability, ink use and mixing.